#include "PajaritoVerde.h"

using namespace TP::Juego::Arena::Actores;

PajaritoVerde::PajaritoVerde() : Pajarito(PAJARITOVERDE) {
    this->setVida(vida_pajaro_verde);
}

PajaritoVerde::PajaritoVerde(const string& pNombre) : Pajarito(pNombre) {
    this->setVida(vida_pajaro_verde);
}

PajaritoVerde::~PajaritoVerde() {
}

double PajaritoVerde::getPoderAtaqueContraCerdito () {
    return danio_pajaro_verde_cerdito;
}

double PajaritoVerde::getPoderAtaqueContraSuperficie () {
    return danio_pajaro_verde_superficies;
}

int PajaritoVerde::getPuntaje() {
    return puntaje_pajaro_verde;
}

TiXmlElement* PajaritoVerde::aElementoXML() {

    TiXmlElement * element = new TiXmlElement(PAJARITOVERDE);

    element->SetAttribute("nombre", this->Nombre().c_str());
    element->SetDoubleAttribute("vida", this->getVida());
    element->SetDoubleAttribute("alturaRebote", this->_alturaRebote);
    element->LinkEndChild(this->getTrayectoria()->aElementoXML());

    return element;
}

void PajaritoVerde::deElementoXML(TiXmlElement* pElemento) {
    double tmp;
    if (strcmp(pElemento->Value(), PAJARITOVERDE) == 0) {
        this->setNombre(pElemento->Attribute("nombre"));
        pElemento->Attribute("vida", &tmp);
        this->setVida(tmp);
        pElemento->Attribute("alturaRebote", &_alturaRebote);
        Trayectoria* trayectoria = new Trayectoria();
        trayectoria->deElementoXML(pElemento->FirstChildElement());
        this->setTrayectoria(trayectoria);
    }
}

double PajaritoVerde::getRadio() {
    return radio_pajaro_verde;
}

int PajaritoVerde::getPuntos() {
    return puntaje_pajaro_verde;
}